package com.hiultra.archive.domain;

import java.util.List;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.hiultra.common.annotation.Excel;
import com.hiultra.common.core.domain.BaseEntity;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;

/**
 * 鉴定单对象 arc_appraisal
 *
 * @author ls
 * @date 2023-08-31
 */
public class ArcAppraisal extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 鉴定id
     */
    private Long appraisalId;

    /**
     * 鉴定单号
     */
    @Excel(name = "鉴定单号")
    private String appraisalNo;

    /**
     * 鉴定名称
     */
    @Excel(name = "鉴定名称")
    private String appraisalName;

    /**
     * 鉴定人
     */
    @Excel(name = "鉴定人")
    private Long appraisalUserId;

    /**
     * 鉴定人
     */
    @Excel(name = "鉴定人")
    private String appraisalUserName;

    /**
     * 鉴定部门
     */
    @Excel(name = "鉴定部门")
    private Long appraisalDeptId;

    /**
     * 鉴定部门
     */
    @Excel(name = "鉴定部门")
    private String appraisalDeptName;

    /**
     * 鉴定意见
     */
    @Excel(name = "鉴定意见")
    private String appraisalOpinion;

    /**
     * 鉴定时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "鉴定时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date appraisalTime;

    /**
     * 单据状态（0正常 1停用）
     */
    @Excel(name = "单据状态", readConverterExp = "0=正常,1=停用")
    private String status;

    /**
     * 删除标志（0代表存在 2代表删除）
     */
    private String delFlag = "0";

    /**
     * 鉴定详情信息
     */
    private List<ArcAppraialDetails> arcAppraialDetailsList;

    public String getAppraisalUserName() {
        return appraisalUserName;
    }

    public void setAppraisalUserName(String appraisalUserName) {
        this.appraisalUserName = appraisalUserName;
    }

    public String getAppraisalDeptName() {
        return appraisalDeptName;
    }

    public void setAppraisalDeptName(String appraisalDeptName) {
        this.appraisalDeptName = appraisalDeptName;
    }

    public void setAppraisalId(Long appraisalId) {
        this.appraisalId = appraisalId;
    }

    public Long getAppraisalId() {
        return appraisalId;
    }

    public void setAppraisalNo(String appraisalNo) {
        this.appraisalNo = appraisalNo;
    }

    public String getAppraisalNo() {
        return appraisalNo;
    }

    public void setAppraisalName(String appraisalName) {
        this.appraisalName = appraisalName;
    }

    @NotBlank(message = "鉴定名称不能为空")
    public String getAppraisalName() {
        return appraisalName;
    }

    public void setAppraisalUserId(Long appraisalUserId) {
        this.appraisalUserId = appraisalUserId;
    }

    @NotBlank(message = "鉴定人不能为空")
    public Long getAppraisalUserId() {
        return appraisalUserId;
    }

    public void setAppraisalDeptId(Long appraisalDeptId) {
        this.appraisalDeptId = appraisalDeptId;
    }

    @NotBlank(message = "鉴定部门不能为空")
    public Long getAppraisalDeptId() {
        return appraisalDeptId;
    }

    public void setAppraisalOpinion(String appraisalOpinion) {
        this.appraisalOpinion = appraisalOpinion;
    }

    public String getAppraisalOpinion() {
        return appraisalOpinion;
    }

    public void setAppraisalTime(Date appraisalTime) {
        this.appraisalTime = appraisalTime;
    }

    public Date getAppraisalTime() {
        return appraisalTime;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String getStatus() {
        return status;
    }

    public void setDelFlag(String delFlag) {
        this.delFlag = delFlag;
    }

    public String getDelFlag() {
        return delFlag;
    }

    @Size(min = 1, message = "鉴定详情列表不能为空")
    public List<ArcAppraialDetails> getArcAppraialDetailsList() {
        return arcAppraialDetailsList;
    }

    public void setArcAppraialDetailsList(List<ArcAppraialDetails> arcAppraialDetailsList) {
        this.arcAppraialDetailsList = arcAppraialDetailsList;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("appraisalId", getAppraisalId())
                .append("appraisalNo", getAppraisalNo())
                .append("appraisalName", getAppraisalName())
                .append("appraisalUserId", getAppraisalUserId())
                .append("appraisalDeptId", getAppraisalDeptId())
                .append("appraisalOpinion", getAppraisalOpinion())
                .append("appraisalTime", getAppraisalTime())
                .append("status", getStatus())
                .append("delFlag", getDelFlag())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .append("arcAppraialDetailsList", getArcAppraialDetailsList())
                .toString();
    }
}
